
let b = 100;//这些全局变量，默认是整个项目的全局
console.log("b",b);
let a = b+20;
console.log("a",a);

// console.log("c",c);

// let t = null;

// console.log(t.aaa);

// 声明一个变量，数据类型是number。
let age:number = 12;

age = 250;

// 数组：
// 1）、
let arr:number[]  = [12,23];
// 2）、
let arrs:Array<string> = [""];


// any:表示任何类型，不到万不得已，不用使用any。
let v1:any = "hello";
v1 = 12;
v1 = true;

// void：没有任何类型，一般使用在函数的返回值上，限定函数没有返回值

function fn02(a:number):void{
    return "";//这个就不对，因为，我们限定了函数没有返回值，但是，你返回了字符串。
}

function fn(a:number,b:string):boolean{
    return true;
}


// 联合类型：
let n1:number | string;

n1 = 12;//对的
n1 = "hello";//对的
// n1 = true;//错的

// 类型推论
let a2 = 12;//表示a2是数字型，ts会根据赋值的类型，推论出变量的类型
// a2 = "";//不行

let arr3 = [12,23,true]; //推论出arr3是 Array<number | boolean>.

// arr3[0] = "";//不对。

// 
let d:Date = new Date();

let arr4:Array<boolean>=[""] ;  

let fun:Function;

let r:RegExp;
let xhr1:XMLHttpRequest;

let box01 = document.getElementById("box01");
// console.log("box01",box01);
console.dir(box01);

// 创建一个dom元素div

let box02:HTMLDivElement;

box02.aaa = 10;





